/**
 * 管理菜品类别的实现类
 */
package com.tjetc.service.Impl;

import com.tjetc.common.JsonResult;
import com.tjetc.dao.DishTypeMapper;
import com.tjetc.entity.DishType;
import com.tjetc.service.DishTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DishTypeServiceImpl implements DishTypeService {

    @Autowired
    DishTypeMapper dishTypeMapper;

    /**
     * 获取所有菜品分类的列表
     * @return 返回菜品分类列表的JsonResult封装对象
     */
    @Override
    public JsonResult getAll() {
        return new JsonResult<>(0,"获取菜品分类成功",dishTypeMapper.selectAll());
    }

    /**
     * 更新类别的信息
     * @param type 传入类别的信息，包括id
     * @return 返回Integer类型的JsonResult，用于判断是否更新成功
     */
    @Override
    public JsonResult updateType(DishType type) {
        return new JsonResult<>(0, "", dishTypeMapper.updateType(type));
    }

    /**
     * 传入对应的type的id，根据这个id删除id对应的类别
     * @param dishTypeId 类别id
     * @return 返回前端处理对象
     */
    @Override
    public JsonResult deleteType(Integer dishTypeId) {
        return new JsonResult<>(0, "", dishTypeMapper.deleteType(dishTypeId));
    }

    /**
     * 传入type对象用于添加到数据库中
     * @param type 需要添加的元素
     * @return 前端处理对象
     */
    @Override
    public JsonResult addType(DishType type) {
        List<DishType> typeList = dishTypeMapper.selectAll();
        for(DishType item : typeList) {
            if(item.getTypeName().equals(type.getTypeName())) {
                return new JsonResult(1, "类别名不能重复", null);
            }
        }
        return new JsonResult<>(0, "", dishTypeMapper.addType(type));
    }
}
